home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_200 / 290_02 / wcnt.l < prev    next >
Encoding:
Text File  |  1990-05-12  |  1.0 KB  |  55 lines

  1. %{
  2.  
  3. /*
  4. **  word count
  5. */
  6.  
  7. char title[7] = "WCNT" ;
  8. int nchar, nword, nline ;
  9.  
  10. void usage( void) ;
  11.  
  12. %}
  13.  
  14. %%
  15.  
  16. [\n]                     { ++nchar ;  ++nline ; }
  17. [\r]                    { ++nchar ; }
  18. [^ \t\n]+               { ++nword ;  nchar += yyleng ; }
  19. .                       { ++nchar ; }
  20.  
  21. %%
  22.  
  23. int main( int argc, char *argv[])
  24. {
  25.     nchar = nline = nword = 0 ;
  26.  
  27.     if (argc != 2)
  28.         usage() ;
  29.  
  30.     if ((yyin = fopen( argv[1],"rb")) == NULL)
  31.     {
  32.         printf( "file: %s wasn\'t found", argv[1]) ;
  33.         exit(1) ;
  34.     }
  35.  
  36.     (void) yylex() ;
  37.  
  38.     printf("FILE %s:\tcharacters  %5d, words %5d, lines %5d\n",
  39.             argv[1], nchar, nword, nline) ;
  40.  
  41.     return 0 ;
  42. }
  43.  
  44.  
  45. void usage( void)
  46. {
  47.     fprintf( stderr, "%s\t\t%s\n", title, __DATE__) ;
  48.     fprintf( stderr, "usage:\tWCNT infile.ext\n") ;
  49.     fprintf( stderr, "\tcounts the number of characters,\n") ;
  50.     fprintf( stderr, "\twords and lines in a text file.\n") ;
  51.  
  52.     exit(1) ;
  53. }
  54.  
  55.